"""
题目描述: 查找众数及中位数
众数是指一组数据中出现次数量多的那个数，众数可以是多个。
中位数是指把一组数据从小到大排列，最中间的那个数，如果这组数据的个数是奇数，那最中间那个就是中位数，
如果这组数据的个数为偶数，那就把中间的两个数之和除以2，所得的结果就是中位数。
查找整型数组中元素的众数并组成一个新的数组，求新数组的中位数。

输入描述：
输入个一维整型数组，数组大小取值范围 0 < N < 1000，数组中每个元素取值范围 0 < E < 1000

输出描述：
输出众数组成的新数组的中位数
"""

"""
思路：用字典键值法统计次数，然后找到次数最多为几次，遍历取出众数形成众数列表
    对众数列表排序，计算列表长度如果长度可以被2整除，中位数就是 中间两个数加起来除以2
    如[1,2,3,4,5,6],中位数（3+4）/2=3.5,从索引上看，就是2、3，也就是6//2 - 1、6//2
        既然是可以被2整除，为什么不写6/2，原因是会自动变成浮点数3.0，因此用//计算被整除多少个更保险
    如果是单数，那就是 正中间，[1,2,3,4,5,6,7]7个数，7//2=3,索引为3，也就是取出来是4
"""


def main(num_list):
    freq = dict()
    for num in num_list:
        if num in freq:
            freq[num] += 1
        else:
            freq[num] = 1
    # 找到次数最多
    max_count = max(freq.values())
    # 众数列表
    z_list = [num for num, f in freq.items() if f == max_count]

    # 对众数列表排序
    new_z = sorted(z_list)
    z_len = len(new_z)
    # 没有余数，可以被整除
    if z_len % 2 == 0:
        median = (new_z[z_len//2 - 1] + new_z[z_len//2]) / 2
    else:
        median = new_z[z_len//2]
    return median


num_list = list(map(int, input().split()))
print(main(num_list))

# a = 4
# b = 2
# print(a/2)
# print(a%2)
# print(a//2)